package 滑动窗口And双指针;

import java.util.Arrays;

/**
 * @author aodre , QQ : 480029069
 * @date 2023/9/13 14:42
 */
public class 百度排列交换问题 {

    /*
     一行两个整数n,k，表示排列长度和连续子段长度。
    一行n个整数a1,a2,...,an，表示排列。
    1<=k<=n<=10^5

    不确定下面代码正确性！
     */

    public void solve() {

        int nums[] = new int[10];
        int k = 5;
        int l = 0, r = 0, ltK = 0, gtK = 0;
        boolean flag = false;
        while (r < nums.length) {
            if (nums[r] <= k) {
                ltK++;
            } else {
                gtK++;
            }
            if (ltK == k || (ltK == k - 1 && gtK == 1)) {
                flag = true;
                break;
            }
            if (gtK > 1) {
                ltK = 0;
                gtK = 1;
            }
            r++;
        }
        if (!flag) {
            System.out.println("No");
            return;
        }

        int temp[] = new int[k];
        int index = l;
        int moreK = 0; // 找到 不合法的值
        for (int i = 0; i < k; i++) {
            if (nums[index] > k) {
                moreK = index;
            }
            temp[i] = nums[index++];
        }
        Arrays.sort(temp);
        int t = 0; // 找到缺失的值， 但是还需要找到缺失的值的下标
        for (int i = 0; i < k; i++) {
            if (temp[i] != i + 1) {
                t = i + 1;
            }
        }


    }


}
